package com.fwtai.controller.web;

import com.fwtai.service.core.AreaService;
import com.fwtai.service.web.FinancialDetailsService;
import com.fwtai.tool.ToolClient;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 财务明细控制层|路由层
 * @作者 李宇鹏
 * @版本 v1.0
 * @QQ号码 444141300
 * @创建日期 2023-05-30 16:57:22
 * @官网 <url>http://www.fwtai.com</url>
*/
@RestController
@RequestMapping("/financialDetails")
public class FinancialDetailsController{

  private final FinancialDetailsService financialDetailsService;

  private final AreaService areaService;

  public FinancialDetailsController(final FinancialDetailsService financialDetailsService,final AreaService areaService){
    this.financialDetailsService = financialDetailsService;
    this.areaService = areaService;
  }

  /**根据id查询对应的数据*/
  @PreAuthorize("hasAuthority('financial_details_row_queryById')")
  @GetMapping("/queryById")
  public void queryById(final Long id,final HttpServletResponse response){
    ToolClient.responseJson(financialDetailsService.queryById(id),response);
  }

  /**获取数据*/
  @PreAuthorize("hasAuthority('financial_details_btn_listData')")
  @GetMapping("/listData")
  public void listData(final HttpServletRequest request,final HttpServletResponse response){
    ToolClient.responseJson(financialDetailsService.listData(request),response);
  }

  //导出Excel
  @PreAuthorize("hasAuthority('financial_details_btn_export')")
  @GetMapping("/getDataExport")
  public void getDataExport(final HttpServletRequest request,final HttpServletResponse response){
    financialDetailsService.getDataExport(request,response);
  }

  //获取区域数据用于构建树形
  @PreAuthorize("hasAuthority('financial_details_btn_area')")
  @GetMapping("/getAreaTree")
  public void getAreaTree(final String kid,final HttpServletResponse response){
    ToolClient.responseJson(areaService.getAreaTree(kid),response);
  }
}